In data unit based communication, an amount of data is divided into a plurality of data units, where the structure of the data units and the rules involved in transmitting the data units from a so-called sending peer to a so-called receiving peer are determined by a given communication protocol. This is well known and does not need to be explained in further detail. It is noted that in the context of the present specification and claims, the term “data unit” is used generically and relates to all types of data divisions which may have different names in connection with different protocols and communication techniques, such as packets, segments, frames, datagrams, protocol data units (PDUs), service data units (SDUs), etc.
In the communication between a given sending peer and a given receiving peer, many problems can occur. Such problems will depend on many factors, e.g. the specific control mechanisms provided in the protocol or protocols being used, characteristics and capabilities of the communication networks over which the data units are transported, etc. This generally leads to the situation that if certain problems relating to the characteristics for capabilities of certain network types are recognised, then corresponding changes in communication protocols can be suggested. As an example, it is known that the congestion control of TCP (Transmission Control Protocol) does not work very efficiently for wireless networks, in particular if sudden changes in data rate occur, e.g. due to channel type switching in wideband CDMA or similar effects. In order to deal with this problem several concepts to improve congestion control performance have been made, such as AntiECN and XCP (Explicit Control Protocol). XCP is e.g. described in “Congestion Control for High Bandwidth-Delay Product Networks” by Dina Katabi et al., SIGCOMM' 02, Aug. 19-23, 2002, Pittsburgh Pa., USA, and AntiECN is e.g. described in the Article “AntiECN Marking: A Marking Scheme for High Bandwidth Delay Connections” by S. Kunniyur, Proceedings RCC Alaska, May 2003.
XCP generalizes the concept of the Explicit Congestion notification in that routers inform senders about the degree of congestion. The idea is that an XCP router computes feedback that causes the system consisting of sender and receiver to converge to an optimal efficiency. In this way, the network explicitly tells the sender the state of congestion and how to react to it.
In AntiECN, the routers along a connection can set a single bit in data units being forwarded, where the single bit indicates that the router is under-utilized. Each router along a path judges its own degree of utilization, and if one router determines that it is being over-utilized, the bit is changed to a value reflecting this over-utilization and subsequent routers cannot change it to the value reflecting under-utilization (this is accomplished by performing an AND operation with respect to the bit value in received data units). The receiving peer echoes the bit back to the sending peer in an acknowledgement (ACK) data unit. If the bit indicates under-utilization, then the sending peer can increase its congestion window (and thereby its rate).
The problem involved in adapting such suggested improvements to a given protocol lies on the one hand in having to change or update the protocol implementations in all potential sending and receiving peers, and the usefulness of such suggestions also usually depends on the number of networks and network entities (such as routers) that make use of the suggested improvement. As a consequence, it is typically very difficult to put such suggested improvements to actual practice.
Another suggestion for alleviating transmission control problems that are due to specific network characteristics and capabilities is to use so-called Performance Enhancing Proxies (PEPs), see RfC 3135. A proxy or proxy server is a computer system or router that breaks the protocol connection between a sending peer and a receiving peer. The proxy can act on behalf of the sending peer and/or the receiving peer. For example, a proxy can analyze the acknowledgement messages, coming back from a receiving peer, and can suppress certain acknowledgements, like duplicate acknowledgements if it is determined that this would be detrimental to overall performance.
Another suggestion for alleviating transmission control problems that are due to specific network characteristics and capabilities is to use so-called Performance Enhancing Proxies (PEPs). A proxy or proxy server is a computer system or router that breaks the protocol connection between a sending peer and a receiving peer. The proxy can act on behalf of the sending peer and/or the receiving peer. For example, a proxy can analyze the acknowledgement messages, coming back from a receiving peer and can suppress certain acknowledgements, like duplicate acknowledgements if it is determine that this would be detrimental to overall performance.